#ifndef _APP_RF_H_
#define _APP_RF_H_

#ifdef __cplusplus
extern "C" {
#endif

#include "main.h"

#define DEBOUNCE_TIME 200         // 去抖动时间，单位为 ms ，检测到一次就屏蔽 DEBOUNCE_TIME ms
#define LEARN_COUNT_THRESHOLD 30  // 对码计数阈值，需根据实际调整  一帧完整数据大概 30-40ms,
#define LEARN_KEY_CMD 0x01        // 对码按键值

#define CMD_ON 0x01          // 开
#define CMD_MODE 0x02        // 切换演示的模式（内置or自定义）
#define CMD_OFF 0x03         // 关
#define CMD_SPEED_UP 0x04    // 速度++
#define CMD_ZONE_NEXT 0x05   // 花样++
#define CMD_LIGHT_UP 0x06    // 亮度++
#define CMD_SPEED_DOWN 0x07  // 速度--
#define CMD_ZONE_PREV 0x08   // 花样--
#define CMD_LIGHT_DONW 0x09  // 亮度--
#define CMD_COLOR1 0x0A      //
#define CMD_COLOR2 0x0B      //
#define CMD_COLOR3 0x0C      //
#define CMD_COLOR4 0x0D      //
#define CMD_COLOR5 0x0E      //
#define CMD_COLOR6 0x0F      //
#define CMD_COLOR7 0x10      //
#define CMD_COLOR8 0x11      //
#define CMD_COLOR9 0x12      //
#define CMD_COLOR10 0x13     //
#define CMD_COLOR11 0x14     //
#define CMD_COLOR12 0x15     //

int app_rf_init (void);
void app_rf_tick_1ms (void);
void app_rf_task (void);
void read_single_pwm (void);
void clear_rf_addrs (void);

extern uint8_t rf_learn_enabled;
extern uint8_t power_on;

#ifdef __cplusplus
}
#endif

#endif /* _APP_RF_H_ */